{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Q-Learning_OpenGenus.ipynb",
      "provenance": [],
      "collapsed_sections": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Nrcytm9HnDkI",
        "colab_type": "text"
      },
      "source": [
        "# I. Q-Learning - Table approach"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fC9d2GXQnAvp",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "import random\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "import tensorflow as tf\n",
        "import matplotlib.pyplot as plt\n",
        "import gym\n",
        "\n",
        "from collections import deque\n",
        "from time import time"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "x5TH5NPrnfyI",
        "colab_type": "code",
        "outputId": "6cc3d02f-29f4-4b68-aeb3-2daca6d4e95d",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "seed = 2205\n",
        "random.seed(seed)\n",
        "\n",
        "print('Seed: {}'.format(seed))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Seed: 2205\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PG6dN6trnqdF",
        "colab_type": "text"
      },
      "source": [
        "##Game Design"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DjE-BXUPntvI",
        "colab_type": "text"
      },
      "source": [
        "There exists a board with 4 cells. The Q-agent will receive a +1 reward every time it fills a vacant cell, and will receive a -1 penalty when it tries to fill an already filled cell.\n",
        "\n",
        "The game ends when the board is full.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "J-i-4Vw7nogO",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "class Game:\n",
        "  \n",
        "  board = None\n",
        "  board_size = 0\n",
        "  \n",
        "  def __init__(self, board_size = 4):\n",
        "    self.board_size = board_size\n",
        "    self.reset()\n",
        "    \n",
        "  def reset(self):\n",
        "    self.board = np.zeros(self.board_size)\n",
        "    \n",
        "  def play(self, cell):\n",
        "    ## Returns a tuple: (reward, game_over?)\n",
        "    if self.board[cell] == 0:\n",
        "      self.board[cell] = 1\n",
        "      game_over = len(np.where(self.board == 0)[0]) == 0\n",
        "      return (1, game_over)\n",
        "    else:\n",
        "      return (-1, False)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "VhMs6jaPos5M",
        "colab_type": "code",
        "outputId": "8b3f7745-001c-4466-bbf6-655c3b776e99",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 321
        }
      },
      "source": [
        "def state_to_str(state):\n",
        "  return str(list(map(int, state.tolist())))\n",
        "\n",
        "all_states = list()\n",
        "for i in range(2):\n",
        "  for j in range(2):\n",
        "    for k in range(2):\n",
        "      for l in range(2):\n",
        "        s = np.array([i, j, k, l])\n",
        "        all_states.append(state_to_str(s))\n",
        "\n",
        "print('All possible states are: ')\n",
        "for s in all_states:\n",
        "  print(s)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "All possible states are: \n",
            "[0, 0, 0, 0]\n",
            "[0, 0, 0, 1]\n",
            "[0, 0, 1, 0]\n",
            "[0, 0, 1, 1]\n",
            "[0, 1, 0, 0]\n",
            "[0, 1, 0, 1]\n",
            "[0, 1, 1, 0]\n",
            "[0, 1, 1, 1]\n",
            "[1, 0, 0, 0]\n",
            "[1, 0, 0, 1]\n",
            "[1, 0, 1, 0]\n",
            "[1, 0, 1, 1]\n",
            "[1, 1, 0, 0]\n",
            "[1, 1, 0, 1]\n",
            "[1, 1, 1, 0]\n",
            "[1, 1, 1, 1]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "13rUr5OVpTge",
        "colab_type": "text"
      },
      "source": [
        "Initializing the game:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "b3oYifvnpGAU",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "game = Game()"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "YTcYkolgpbNr",
        "colab_type": "text"
      },
      "source": [
        "## Q-Learning"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "FCBsp5cgpW_o",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "num_of_games = 2000\n",
        "epsilon = 0.1\n",
        "gamma = 1"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "My1XivF3ppli",
        "colab_type": "text"
      },
      "source": [
        "Initializing the Q-Table:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ArHwI7kEpowo",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "q_table = pd.DataFrame(0, \n",
        "                       index = np.arange(4),\n",
        "                       columns = all_states)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nXwaRzbUp4Eu",
        "colab_type": "text"
      },
      "source": [
        "Letting the agent play and learn:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yW--SweBpzuV",
        "colab_type": "code",
        "outputId": "e775e65f-0dd5-4a6b-8ead-0c03b96d5c04",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 247
        }
      },
      "source": [
        "r_list = [] ##Stores the total reward of each game so we can plot it later\n",
        "\n",
        "for g in range(num_of_games):\n",
        "  game_over = False\n",
        "  game.reset()\n",
        "  total_reward = 0\n",
        "  \n",
        "  while not game_over:\n",
        "    state = np.copy(game.board)\n",
        "    if random.random() < epsilon:\n",
        "      action = random.randint(0, 3)\n",
        "    else:\n",
        "      action = q_table[state_to_str(state)].idxmax()\n",
        "    \n",
        "    reward, game_over = game.play(action)\n",
        "    total_reward += reward\n",
        "    if np.sum(game.board) == 4:  ##Terminal state\n",
        "      next_state_max_q_value = 0\n",
        "    else:\n",
        "      next_state = np.copy(game.board)\n",
        "      next_state_max_q_value = q_table[state_to_str(next_state)].max()\n",
        "    q_table.loc[action, state_to_str(state)] = reward + gamma * next_state_max_q_value\n",
        "  r_list.append(total_reward)\n",
        "q_table"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>[0, 0, 0, 0]</th>\n",
              "      <th>[0, 0, 0, 1]</th>\n",
              "      <th>[0, 0, 1, 0]</th>\n",
              "      <th>[0, 0, 1, 1]</th>\n",
              "      <th>[0, 1, 0, 0]</th>\n",
              "      <th>[0, 1, 0, 1]</th>\n",
              "      <th>[0, 1, 1, 0]</th>\n",
              "      <th>[0, 1, 1, 1]</th>\n",
              "      <th>[1, 0, 0, 0]</th>\n",
              "      <th>[1, 0, 0, 1]</th>\n",
              "      <th>[1, 0, 1, 0]</th>\n",
              "      <th>[1, 0, 1, 1]</th>\n",
              "      <th>[1, 1, 0, 0]</th>\n",
              "      <th>[1, 1, 0, 1]</th>\n",
              "      <th>[1, 1, 1, 0]</th>\n",
              "      <th>[1, 1, 1, 1]</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>4</td>\n",
              "      <td>3</td>\n",
              "      <td>3</td>\n",
              "      <td>2</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>-1</td>\n",
              "      <td>1</td>\n",
              "      <td>-1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>4</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>2</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>4</td>\n",
              "      <td>3</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>4</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>3</td>\n",
              "      <td>1</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>2</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   [0, 0, 0, 0]  [0, 0, 0, 1]  ...  [1, 1, 1, 0]  [1, 1, 1, 1]\n",
              "0             4             3  ...             0             0\n",
              "1             4             0  ...             0             0\n",
              "2             4             3  ...             0             0\n",
              "3             4             0  ...             1             0\n",
              "\n",
              "[4 rows x 16 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "edwSIGCoryCL",
        "colab_type": "text"
      },
      "source": [
        "Let's verify that the agent indeed learnt a correct strategy by seeing what action it will choose in each one of the possible states"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Gwo52TJ7rtPJ",
        "colab_type": "code",
        "outputId": "27e7bc3a-e34d-4455-ad7a-a9647acbf90b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 305
        }
      },
      "source": [
        "for i in range(2):\n",
        "  for j in range(2):\n",
        "    for k in range(2):\n",
        "      for l in range(2):\n",
        "        b = np.array([i, j, k, l])\n",
        "        if len(np.where(b == 0)[0]) != 0:\n",
        "          action = q_table[state_to_str(b)].idxmax()\n",
        "          pred = q_table[state_to_str(b)].tolist()\n",
        "          print('Board: {b}\\tPredicted Q-values: {p}\\tBest action: {a}\\tCorrect action? {s}'\n",
        "               .format(b = b, p = pred, a = action, s = b[action]==0))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Board: [0 0 0 0]\tPredicted Q-values: [4, 4, 4, 4]\tBest action: 0\tCorrect action? True\n",
            "Board: [0 0 0 1]\tPredicted Q-values: [3, 0, 3, 0]\tBest action: 0\tCorrect action? True\n",
            "Board: [0 0 1 0]\tPredicted Q-values: [3, 3, 2, 2]\tBest action: 0\tCorrect action? True\n",
            "Board: [0 0 1 1]\tPredicted Q-values: [2, 0, 0, 0]\tBest action: 0\tCorrect action? True\n",
            "Board: [0 1 0 0]\tPredicted Q-values: [3, 2, 0, 0]\tBest action: 0\tCorrect action? True\n",
            "Board: [0 1 0 1]\tPredicted Q-values: [0, 0, 0, 0]\tBest action: 0\tCorrect action? True\n",
            "Board: [0 1 1 0]\tPredicted Q-values: [2, 0, 0, 0]\tBest action: 0\tCorrect action? True\n",
            "Board: [0 1 1 1]\tPredicted Q-values: [0, 0, 0, 0]\tBest action: 0\tCorrect action? True\n",
            "Board: [1 0 0 0]\tPredicted Q-values: [2, 3, 3, 3]\tBest action: 1\tCorrect action? True\n",
            "Board: [1 0 0 1]\tPredicted Q-values: [-1, 2, 2, 1]\tBest action: 1\tCorrect action? True\n",
            "Board: [1 0 1 0]\tPredicted Q-values: [1, 2, 1, 2]\tBest action: 1\tCorrect action? True\n",
            "Board: [1 0 1 1]\tPredicted Q-values: [-1, 1, 0, 0]\tBest action: 1\tCorrect action? True\n",
            "Board: [1 1 0 0]\tPredicted Q-values: [1, 1, 2, 2]\tBest action: 2\tCorrect action? True\n",
            "Board: [1 1 0 1]\tPredicted Q-values: [0, 0, 1, 0]\tBest action: 2\tCorrect action? True\n",
            "Board: [1 1 1 0]\tPredicted Q-values: [0, 0, 0, 1]\tBest action: 3\tCorrect action? True\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qFYAnBc1tteR",
        "colab_type": "text"
      },
      "source": [
        "We can improve the performance of our algorithm by increasing the <math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>&#x3B5;</mi></math> (epsilon) value (which controls how much the algorithm can explore), or by letting the agent play more games."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xu13o5eduKvC",
        "colab_type": "text"
      },
      "source": [
        "Let's plot the total reward the agent received per game:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ex2SsbBvtK2k",
        "colab_type": "code",
        "outputId": "50e81ebd-138a-4440-9540-aa6e2c109846",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 466
        }
      },
      "source": [
        "plt.figure(figsize = (14, 7))\n",
        "plt.plot(range(len(r_list)), r_list)\n",
        "plt.xlabel('Games played')\n",
        "plt.ylabel('Reward')\n",
        "plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nIx7uX73yNP3m5Tfo4MxsIj/83v2P6z1furXrnKXTy08/eZM++M27ref3D168TauXLNAXvv8jffza\nTt772xedqAUTY/qdf7uxa5uztqzUa8/ZbA3v2rse0fu+dof1N6lzTr5+205nnF52xpG6/JrmM+vN\nzzxWn7nxAd328J72c711buLHFT/md7/sFC1e0Cya/+pHrtPBmVlnOm0tf8YJh+sVOzY645329iu+\nq0f3HtIrdhypZ5ywxrpO/Br+n1efrrGGsd5HLzx1gy6MlVdOPmJ5cDyGxSBbhM6V9CJjzPMlTUla\nZoz5YBRFPx1fKYqiSyVdKkk7duzw9yfrsy2rlyQefqdvWqF//Hrz3xdsW6+3yF0RevbWNdqwYqH1\ntzt27tEn5zZ93rZ1Wr5wQnfs3NOuCF24fX27a4YkPbbvkC67SlqxaELPnysUS9IZRx2W+HvZwglr\nN4wjD1uoR/Ye0vdT+Xl82+/e91iiInT+Set0mKUi9+07d0mfb/571ZJJ3ffoPp20YVm7y9iGFQsT\n4WZZv3xhOwM4Ye1SfUoPaM3SBd4wjl+7RLfv3K0HY/nGM044XEetWpxY779v3amv3dp8WKXDu/vH\ne/W7sleEzjjqMF2YWv/9/32Hbt+5RysXT7bD+tsv36p71Cx8P+fEte2K0JmbV+o5J61tb/uUY1bp\nsqvubhest65f6jy+ybGGDsb6A21d21n3/f99R6Ii1Fp+xXfuk5SsCD1pUzNtfPP2H7crQkesaBb4\nrrtHOn7tUt2xc48efLzZ1J2Oz9plU13L/unrdyYqQvHfP3Pjg10VoR2bD+sqoK1ZuqBdETrvuNVa\nMN7Qx1J574nrlyUqQsfPnYP3XXl7uyL0rBPX6qEnDrQrQqvn0mLcumVTuun+x7V0arwd18uuujtR\nEbKljXOPXa2PfLtzvSbHGnr+yet1/6P7uipCm1Z2b3/zA4/rM+qc128v3aW//EL3Obv2rkf0xeSh\n61knrtWlV96uXXOnuXV/LF4wpq3rl+oTsSznuLVL9PyT1+sPPvk9PXhov045coU1Xf3qv1zXVRE6\n+cjl7XV/+99u1K49B3XakSt0xbX36dBMp6B5qiXMj3z7Ht384BNaNjWhpx63ur38wu3rNTmerAgd\nmpnVP3692YXl+LVL9Nm5W27VksmucD969T1dd2Rrnfg5lKTTNq5oV4TOPXa1Ttu4QlJ3OtywvJmO\n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\ndfc8qgu2r28v27X3kCRp4cRY+7iuvGVn17ZG0vtfe6be/bkfaOXiBXry0Sudcf74L56jT95wv157\nzmb9zX/doqcet7r925+/4lS99yu3aeXiST09lnb+4MXbNdYwmhxr6FVnbdJXfvhwO2387FM261+/\nfY8OX7pAp21cobO2rNTiyc45fOiJAzpryypJ0offcLauumOXHnxsv97y3OO74vbsrWt01R27JClx\njdLOPXaVXrGjmVZ/5VnH6uknrNF19zyqv/vKbXr3y0/VzQ88rrt+vFeStHXd0q7tzzjqML3m7E16\n6ZOO0EevvlfP2rpWknTOMat03nGr9dyTmn+fv22tXn7GkXpi/7Quef5W3fnjvfrhg09ocryhDSsW\n6oS1S/WsrWv0M085qh32aRsPa//7/JPW6g3nddLG+3/+TN32ULMR+/2vPVMf/ObdWjDR0AtP2SBJ\nWr1kUi86dYO+ePND2n1g2nn8tofXJRdu1YnrlyWWveyMjbrh3sf00WvulST96U+eIkl65glrdMO9\nj+qFp67XqRtX6Nlb1+j1T92iM446TMeuWaJb5+LY2s0/v+4sfeSqe7TOcd/+zkUn6a2X36BX7DhS\nrzxzkz74zbu0aeWi9u8fesPZuvzqe7Vq8aQuufBE/dM37rSmY9vxZT2oxxtGb3z6MXrBKet13Nol\nieuV9q6XbNff/Nctev7J66151CUXNrf58Z6DWjY1nrheaedvW6ujVi3Sr82l44uffrR+9Ph+vfbc\n5vV+z0+drt377dfwg687W//8jTu1df0yrV22QFfdsUurlyzoOq6WDcun9EcvPbn99y+cu0VLp8a1\ncHJMd/14ryY83wjZum6pnnPiWr36rI3Odf7m1afrP66/X+ccs0qP7ZvWI3sPamqioVfu2Khj1yyR\nJP3Bi7dp/6EZ3ffIPp133OG6e9feRKH07c/fqqmJMe07OKM//szNifBfdsZGfefuR3XT/Y9ry+rF\n2rRykX79/BP0gW/cqZM2LNNfvvJUzc5Kd+3aq6cff7gWjDf0yRvu18lHLNcTc+fwd15wkjavWqSv\n/vBh/dw5m9th//6Ltuk9X7pVf/XK09rLfvuiE/X3V96uv33Nk/T6f7pax65Zoomxhn7unM3671t3\n6hfOtefXUifNv+yMI7VsakIbljfT/Md+8Sn6u6/crmvvfkRP2tS8x8/aslLnHLNKT9q0QnsPzmjD\nioV6y3OO1/TsrPW58c4XnKT3fuU2/dnLO+nuGSes0caVC3XPrn1avWSBdu4+IEk6fdMKHbNmsf7H\n045JhPGnP3mKpibH2n8/96S1etWZG9vpsOXyN56jT15/vw7NRHr1WRt1xGELdeN9j+nA9Ize+YJt\nXXE7fOkCvf6pW/TyHTPuDEsAACAASURBVBu1aeUi3XDvo/r180/Qr1z2HUnNvNHm8jc+RV/+wcO6\n88d79LTjms+Mtz7vhPY5avng687Wjfc/ptM2rtBPP3mTLj7vGN2+c3c7r/n7n92hD37zLm1etViS\ndMUvnaPX/9PV+sOf2C5JetuFW3XZVfdY83NJ+uOXnqxFk2PtstHbn79VUSTt3H1AyxdO6B9//kzd\n+tBunb1lld75iRv1nbsfTWy/eskCvfi0DXpk76F2/h/3pmceo/OOO1wfu+Ze/epz3M8mSfrlZx2r\nc45ZrXf++41aMjWus7es1C8+4xg9P/ZsX7ZwXBc/7Wj9xGlH6Ku3PKxr73pEZxx1mO5/dJ+OW7NE\nl73hybrmruaz8M9fcar+9su36czNzXP6kYufrI9fe2/iuKTutCFJH3r92frXq+/R4UsW6FeefZye\nvGWl/u26+3TM4Uu0bvmUnn784dq9f1qv8uQPNu/7uR36wDc618vm8jc+RW/84DX6o5d08q6PXPxk\n/cPX7tCxa5bo2rsfkTQ/upCaXg76z8MY805Je6Mo+jPXOjt27IiuvvrqPsbKbcsln9IvP/NY/epz\njtfRb/+0JOkH/+sCLRgfy9hyfnt8/yGd8nv/KUm6808uai//0Lfu0juuuFGvPmuT/jhWKOi1zW/7\nVFdcyob1pd94hrasdmcgLT/z/76lK2/ZqT96ycn6qbO7K/Gt8L73B8/TosmBvpPoubd97AZ95Nv3\n6I9ferJefVa+Fxovf+/X9e07H2n/XcW1dDk4Pavjf/szkqTr33m+lltePIT435+9Wf/fl2/TW593\ngt70zGMTv33qhgf0pg9fq/NPWqtLf3ZHZlh50vBVd+zSK/7uG5Kk9/70kxIV8yod/47P6ODMrD71\nK0/Vtg3LE79dfs29+o2PXq/TN63QFb90bqX3YFmXfPy7uuyqu/Wul2zXa84+KnuDCvb1Oy84yfmy\nZZA+/d0H9EsfulbPOXGt3vdznXQ4TNcrr9+8/Hr969X36u3P36qLU5WQXvnvW3fqNe/7lk5Yu1QX\n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\nYII=\n",
            "text/plain": [
              "<Figure size 1008x504 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    }
  ]
}